package upcweb.dao;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;

import upcweb.modelo.ClsSolicitud;
import java.util.ArrayList;

public class SolicitudDAO {

	
	
	
	   public int InsertarCabSolicitud(ClsSolicitud objSolicitud ) {
		   int retorno=0;
		   PreparedStatement ps=null;
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("{ call sp_solicitud_cab_registrar(?,?,?,?) }");
	    	   //ps.setInt(1,  objSolicitud.getNu_solicitud());
	    	   ps.setString(1,  objSolicitud.getCo_estado());
	    	   //ps.setDate(3, objSolicitud.getFe_solicitud());
	    	   ps.setInt(2,  objSolicitud.getQt_personas());
	    	   ps.setInt(3, objSolicitud.getCo_club());
	    	   ps.setInt(4,  objSolicitud.getCo_responsable());
	    	
	           retorno=ps.executeUpdate();
	           
	       }catch (Exception e) {
	    	   System.out.print(e.getMessage());
			//e.printStackTrace();
	       }
	
	      return retorno; 
	   }
	   
	   
	   public int InsertarDetSolicitud(ClsSolicitud objSolicitud) {
		   int retorno=0;
		   PreparedStatement ps=null;
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("{ call sp_solicitud_det_registrar(?,?,?,?,?) }");
	    	   ps.setInt(1,  objSolicitud.getCo_servicio());
	    	   ps.setDouble(2,  objSolicitud.getMt_pago());
	    	   ps.setInt(3,  objSolicitud.getQt_personas());
	    	   ps.setString(4, objSolicitud.getTxt_observaciones());
	    	   ps.setInt(5,  objSolicitud.getNu_solicitud());
	    	
	           retorno=ps.executeUpdate();
	           
	       }catch (Exception e) {
	    	   System.out.print(e.getMessage());
			//e.printStackTrace();
	       }
	
	      return retorno; 
	   }
	   
	   
	   public ArrayList<ClsSolicitud> ListarServicioReserva () {

		   PreparedStatement ps=null;
		   ArrayList<ClsSolicitud> SolicitudList = new ArrayList<ClsSolicitud>();
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("call sp_listado_servicio_reserva()");
	    	   ResultSet resulset =ps.executeQuery();
	    	   
	    	   while(resulset.next()){
	    		   
	    		   ClsSolicitud  objcluBE = new ClsSolicitud();
	    		   objcluBE.setCo_servicio(resulset.getInt("co_servicio"));
	    		   objcluBE.setNo_tipo_servicio(resulset.getString("no_tipo_servicio"));		    		   
	    		   objcluBE.setNo_servicio(resulset.getString("no_servicio"));	
	    		   objcluBE.setNo_descripcion(resulset.getString("no_descripcion"));	    		   
	    		   objcluBE.setMt_costo_por_persona(resulset.getDouble("mt_costo_por_persona"));
	    		   objcluBE.setQt_minima_personas(resulset.getInt("qt_minima_personas"));	    		 
	    		   objcluBE.setNo_imagen(resulset.getString("no_imagen"));		    		   
	    		   SolicitudList.add(objcluBE);
	    	   }
	           
	       }catch (Exception e) {
			e.printStackTrace();
	       }
	
	      return SolicitudList; 
	   }

	   
	   
	   
	   public ArrayList<ClsSolicitud> ObtenerNumeroReserva() {

		   PreparedStatement ps=null;
		   ArrayList<ClsSolicitud> SolicitudList = new ArrayList<ClsSolicitud>();
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("call sp_generar_numero_reserva()");
	    	   ResultSet resulset =ps.executeQuery();
	    	   
	    	   while(resulset.next()){
	    		   
	    		   ClsSolicitud  objcluBE = new ClsSolicitud();
	    		   objcluBE.setNu_solicitud(resulset.getInt("nu_solicitud"));
	    		   SolicitudList.add(objcluBE);
	    	   }
 
	       }catch (Exception e) {
			e.printStackTrace();
	       }
	      return SolicitudList; 
	   }

	   
	   
	   
	   
	   public ArrayList<ClsSolicitud> BusquedaResponsableID (int co_responsable) {

		   PreparedStatement ps=null;
		   ArrayList<ClsSolicitud> SolicitudList = new ArrayList<ClsSolicitud>();
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("call sp_responsable_id(?)");
	    	   ps.setInt(1,  co_responsable);
	    	   ResultSet resulset =ps.executeQuery();
	    	   
	    	   while(resulset.next()){
	    		   
	    		   ClsSolicitud  objcluBE = new ClsSolicitud();
	    		 
	    		   objcluBE.setCo_responsable(resulset.getInt("co_responsable"));		    		   
	    		   objcluBE.setNo_responsable(resulset.getString("no_responsable"));	
	    		   objcluBE.setNo_correo(resulset.getString("no_correo"));	    		   		 
	    		   objcluBE.setTx_direccion(resulset.getString("tx_direccion"));		    		   
	    		   SolicitudList.add(objcluBE);
	    	   }
	           
	       }catch (Exception e) {
			e.printStackTrace();
	       }
	
	      return SolicitudList; 
	   }
	   
	   
	   
	   public ArrayList<ClsSolicitud> ListaSolicitud (ClsSolicitud objSolicitud) {

		   PreparedStatement ps=null;
		   ArrayList<ClsSolicitud> SolicitudList = new ArrayList<ClsSolicitud>();
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("call sp_busqueda_solicitud(?,?,?,?)");
	    	   ps.setInt(1,  objSolicitud.getNu_solicitud());
	    	   ps.setInt(2,  objSolicitud.getCo_club());
	    	   ps.setString(3,  objSolicitud.getNo_responsable());
	    	   ps.setString(4, objSolicitud.getCo_estado());
	    
	    	   ResultSet resulset =ps.executeQuery();
	    	   
	    	   while(resulset.next()){
	    		   
	    		   ClsSolicitud  objcluBE = new ClsSolicitud();
	    		 
	    		   objcluBE.setNu_solicitud(resulset.getInt("nu_solicitud"));		    		   
	    		   objcluBE.setFecha(resulset.getString("fecha"));	
	    		   objcluBE.setQt_personas(resulset.getInt("qt_personas"));
	    		   objcluBE.setNo_club(resulset.getString("no_club"));	
	    		   objcluBE.setCo_responsable(resulset.getInt("co_responsable"));	    		   
	    		   objcluBE.setNo_documento(resulset.getString("nu_documento"));	
	    		   objcluBE.setNo_responsable(resulset.getString("no_responsable"));	    		   
	    		   objcluBE.setEstado(resulset.getString("estado"));
	    		   objcluBE.setOcultar(resulset.getString("ocultar"));
	    		   SolicitudList.add(objcluBE);
	    	   }
	           
	       }catch (Exception e) {
			e.printStackTrace();
	       }
	
	      return SolicitudList; 
	   }
	   
	   
	   
	   
	   public int ModificarSolicitud(ClsSolicitud objSolicitud) {
		   int retorno=0;
		   PreparedStatement ps=null;
	       try {
	    	   
	    	   ps = ConexionDAO.newConexion().prepareCall("{ call sp_solicitud_cab_update(?,?) }");
	    	   ps.setInt(1,  objSolicitud.getNu_solicitud());
	    	   ps.setString(2,  objSolicitud.getCo_estado());

	           retorno=ps.executeUpdate();
	           
	       }catch (Exception e) {
	    	   System.out.print(e.getMessage());
			//e.printStackTrace();
	       }
	
	      return retorno; 
	   }
	   
	
	

}
